<img style src="https://notabug.org/adnan360/jwm-config/raw/master/assets/jwm-config-logo.svg.png" />


# jwm-config

JWM is very lightweight and a feature rich desktop. It has so much potential, but by default is a bit too basic with no automatic application menu, weird keyboard shortcuts etc.

This is a JWM config that makes it into a usable desktop, with usable panel, automatic application menu - just like a traditional desktop. JWM is lightweight and inherently faster than other desktop environments, so it should do things faster, make your pc run cooler and all that in a traditional and recognizable interface.

<img src="https://notabug.org/adnan360/jwm-config/raw/master/screenshot-01.png" />

<br/>

## Installation

#### Step 1
Just install these requirements:

```text
	- jwm
	- rofi
	- nm-applet
	- cbatticon
	- volumeicon
	- papirus-icon-theme
	- nitrogen
	- xlockmore (for locking)
	- ksuperkey (optional, if you want super key to open something)
	- xdgmenumaker (for program list generation)
	- gsimplecal (for showing calendar when clock is clicked)
	- xrandr (optional, for connecting to external screens/projectors)
	- xfce4-notifyd (optional, for showing notfications - relogin required to start service)
```

*Of course these are not tight requirements. You can change the config to suit to your needs.*

If you don't know which type of distro you are using, run `cat /etc/os-release`, check the `ID_LIKE` value and follow accordingly.

##### Arch Linux

For **Arch Linux**, it can be something like:

```sh
sudo pacman -S jwm rofi nm-applet cbatticon volumeicon papirus-icon-theme nitrogen xlockmore xdgmenumaker gsimplecal xrandr && yaourt -S ksuperkey --noconfirm
```

##### Debian

Tested on **Sparky Linux Rolling** (close to **Debian Testing**):

```sh
sudo apt install jwm rofi network-manager-gnome cbatticon volumeicon-alsa papirus-icon-theme nitrogen gsimplecal
```

*Did not find xlockmore on debian repo, so please use i3lock or something else and change .jwmrc accordingly.*

Install xdgmenumaker (it is recommended to install for automatic generation of application menu):

```sh
sudo apt install make txt2tags python-xdg python-gtk2
git clone https://github.com/gapan/xdgmenumaker.git
cd xdgmenumaker
make
sudo make install
```

Install ksuperkey (it is optional and just for the super key shortcut):

```sh
sudo apt-get install git gcc make libx11-dev libxtst-dev pkg-config
git clone https://github.com/hanschen/ksuperkey.git
cd ksuperkey
make
sudo make install
```

#### Step 2

`cd` to the directory where you downloaded/cloned this repository:
```sh
cd path/to/this/repo
```

Copy the `.jwmrc` file, `.config` and `.local` folder into your home directory, or open a terminal on this repo directory and run:
```sh
cp -r {.config,.jwmrc,.local} ~
```

Make sure scripts are executable (git should make them executable by default):
```sh
chmod +x ~/.local/share/jwm-config/*.sh
```

#### Step 3

Log out and log back into the JWM session. You can make changes to `~/.jwmrc` depending on your setup (file manager, terminal, web browser etc.)

When an update to `.jwmrc` is pushed, you can use `meld` and open the repo version and your `.jwmrc` side by side, then click the arrow buttons besides changes to decide which changes you want to accept into your config.


## Keyboard Shortcuts

Common Shortcuts:
- Alt+F1 : Opens Main menu
- Alt+F2 or F12 : Run something
- Ctrl+Alt+T : Run Terminal
- Ctrl+Alt+E or Super+E : Run File Manager
- Alt+(number) : To go to the desktop of that number
- Ctrl+Alt+(arrow key) : To go to the desktop in that specific way
- Super+Tab : Go to the desktop to the right
- Ctrl+Alt+D or Super+D : Show desktop
- Ctrl+Alt+Shift+R : Restart JWM
- Ctrl+Alt+L : Lock screen
- Super key: Opens application menu (changeable to run option or anything else, of course)
- Super key+P or XF86Display or screen change key: Opens up monitor connection option (great for projectors/presentations)
- Super key+F4: Power menu (for shutdown/reboot/logoff/logout etc.)


## Known Issues

- The **Programs** menu does not update when you install an application. You have to manually click **Restart JWM** on the menu or run: `jwm -restart`. This is a limitation of JWM and not supposed to be fixed. You can probably use hooks for your package manager to restart JWM when new programs are installed.

- The **Show Desktop** button at the bottom right corner does not work the first time on a session. It works fine after the first time.


## Usability Notes

### Choosing Terminal from Thunar

When you first open the terminal on a directory through Thunar, it will show a dialog titled "Choose a Preferred Application". Choose **Other...**, then type in the executable name of your favorite terminal application (e.g. `lxterminal`) then click OK, then again OK. It will open your specified terminal. It will work like that from now on.


## Troubleshooting

**1. Icons in the system tray does not show in Papirus icons:** Install `lxappearance` and use it to set the icon to **Papirus**.

**2. pcmanfm-qt does not show the icons:** Go to Edit - Preferences - Display and choose **Papirus** then restart pcmanfm.

License: CC0 - do whatever you want with it.
